package com.jt.controller;

import com.jt.pojo.ItemDesc;
import com.jt.vo.EasyUITable;
import com.jt.pojo.Item;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import com.jt.service.ItemService;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/item")
public class ItemController {
	
	@Autowired
	private ItemService itemService;

	/**
	 * 业务: 根据分页要求展现商品列表.要求将最新最热门的商品首先给用户展现.
	 * url: url:'/item/query
	 * 参数: page=1&rows=20   page当前页    rows 记录数
	 * 返回值: EasyUITable
	 * 编码习惯: mapper-service-controller-页面js   手敲  自下而上的开发
	 * 课堂代码格式:
	 * 			url-controller-service-mapper      结构代码自动生成  自上而下开发
	 *
	 */
	@RequestMapping("/query")
	public EasyUITable findItemByPage(Integer page,Integer rows){
		//1.调用业务层,获取商品分页信息
		return itemService.findItemByPage(page,rows);
	}

	/**
	 * 商品新增操作
	 * url: /item/save
	 * 参数: form表单数据
	 * 返回值结果: SysResult对象
	 */
	@RequestMapping("/save")
	public SysResult saveItem(Item item,ItemDesc itemDesc){
		//没有全局异常处理的情况:
//		try {
//		itemService.saveItem(item);
//		return SysResult.success();
//		}catch (Exception e){
//			e.printStackTrace();
//			return SysResult.fail();
//		}
		//定义全局异常处理机制!!!!!
		itemService.saveItem(item,itemDesc);
		return SysResult.success();
	}


	@RequestMapping("/update")
	public SysResult updateItem(Item item,ItemDesc itemDesc){
		itemService.updateItem(item,itemDesc);
		return  SysResult.success();
	}

	@RequestMapping("/delete")
	public SysResult deleteItems(Long[] ids){
		itemService.deleteItems(ids);
		return SysResult.success();
	}

	/**
	 * url地址:   /item/updateStatus/2   /item/updateStatus/1
	 * 参数:  1.url中  2.ids
	 * 返回值:  SysResult对象
	 */

	@RequestMapping("/updateStatus/{status}")
	public SysResult doInstockOrReshelf(@PathVariable Integer status,Long[] ids){
		itemService.updateItemStatus(ids,status);
		return SysResult.success();
	}

	/**
	 * 业务:根据详情ID查询商品详情信息,之后再页面中回显.
	 * url地址:http://localhost:8091/item/query/item/desc/1474391973
	 * 参数:  包含在url中,利用restFul方式动态获取
	 * 返回值:  SysResult对象
	 */
	@RequestMapping("/query/item/desc/{itemId}")
	public SysResult findItemDescById(@PathVariable Long itemId){
		ItemDesc itemDesc = itemService.findItemDescById(itemId);
		//将数据返回页面
		return SysResult.success(itemDesc);
	}
}
